using System;
using System.Collections.Generic;
using OrangeProject.ReactiveList.Core.Entities;

namespace OrangeProject.ReactiveList.Core.Client
{
    public abstract class AbstractReactiveList
    {
        public virtual Func<IEntity> Creator { get; set; }

        public String Name { get; set; }

        public abstract StateContainer<IEntity> LookupObjectStates();
        public abstract void RestoreObjectAddDeleteStates(StateContainer<IEntity> container);
        public abstract void RestoreObjectUpdateState(StateContainer<IEntity> container);

        public abstract void DiscardChanges();
    }
}
